iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
自我挑戰組

從零開始用Unity設計遊戲系列 第 16

解決角色跑出攝影機的問題

  • 分享至 

  • xImage
  •  

今天是挑戰的的第16天~~!!

昨天順利的把角色的動畫和切換的控制加入後,發現雖然攝影機已經能順利更隨角色與限制範圍,但是角色因為還沒限制,因此會發生角色超出範圍,而攝影機找不到角色的問題。所以今天要來限制角色能移動的範圍。

這次要再新增一個C# Script,內容如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class stay : MonoBehaviour
{
    // Start is called before the first frame update
    void Start() {}
    // Update is called once per frame
    void Update()
    {
        transform.position = new Vector3(Mathf.Clamp(transform.position.x, -38.5f, 76.5f), Mathf.Clamp(transform.position.y, 1.3f, 22.0f), transform.position.z);
    }
}

主要是利用Mathf.Clamp來做限制而裡面的參數順序是value,min,max,也就是限制value的值在min與max之間,要是value大於max會回傳max,而value小於min則會回傳min,而上面是限制X的範圍與Y的範圍,完成後再把需要限制的物件套用上去即可完成。

在編寫的過程中,有看到不少方法,這是使用的應該是最簡單的版本,其中看到比較特別的是建立一個Collider利用碰撞效果來限制,但自己嘗試並未成功,不知道是否因為物件有些設定錯誤,導致角色碰撞失敗QAQ


上一篇
目標:加入動畫(走動2)
下一篇
目標:建立敵人(一)
系列文
從零開始用Unity設計遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言